/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controlador;

import connection.Connection;
import dao.UsuarioJpaController;
import dao.exceptions.IllegalOrphanException;
import dao.exceptions.NonexistentEntityException;
import dao.exceptions.PreexistingEntityException;

import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.html.HtmlDataTable;
import javax.persistence.EntityManagerFactory;
import modelo.Usuario;

@ManagedBean(name = "ControladorUsuarios")
@SessionScoped
/**
 *
 * @author Fabian
 */
public class ControladorUsuarios {

    private List<Usuario> listaUsuarios;
    private EntityManagerFactory factory;
    private UsuarioJpaController daoUsuarios;
    private String txtTipo;
    private String txtLogin;
    private String txtPassword;
    private String txtEstado;
    private Usuario usuario;

    public ControladorUsuarios() {
    }

    public void cargarTablaUsuarios() {

        factory = Connection.getEmf();
        daoUsuarios = new UsuarioJpaController(factory);
        setListaUsuarios(daoUsuarios.findUsuarioEntities());

    }

    public void editarUsuario() {
        Usuario reemplazo= getUsuario();
        factory = Connection.getEmf();
        daoUsuarios = new UsuarioJpaController(factory);
        Usuario u = daoUsuarios.findUsuario(reemplazo.getLogin());
        u.setTipousuario(reemplazo.getTipousuario());
        u.setContrasena(reemplazo.getContrasena());
        u.setEstado(reemplazo.getEstado());
        try {
            daoUsuarios.edit(u);
        } catch (IllegalOrphanException ex) {
            Logger.getLogger(ControladorUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(ControladorUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(ControladorUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void crearUsuarios() {

        factory = Connection.getEmf();
        daoUsuarios = new UsuarioJpaController(factory);
        Usuario u = new Usuario();
        u.setLogin(txtLogin);
        u.setContrasena(txtPassword);
        u.setEstado(txtEstado);
        u.setTipousuario(txtTipo);

        try {
            daoUsuarios.create(u);
        } catch (PreexistingEntityException ex) {
            Logger.getLogger(ControladorUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(ControladorUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public List<Usuario> getListaUsuarios() {
        return listaUsuarios;
    }

    public void setListaUsuarios(List<Usuario> listaUsuarios) {
        this.listaUsuarios = listaUsuarios;
    }

    public String getTxtTipo() {
        return txtTipo;
    }

    public void setTxtTipo(String txtTipo) {
        this.txtTipo = txtTipo;
    }

    public String getTxtLogin() {
        return txtLogin;
    }

    public void setTxtLogin(String txtLogin) {
        this.txtLogin = txtLogin;
    }

    public String getTxtPassword() {
        return txtPassword;
    }

    public void setTxtPassword(String txtPassword) {
        this.txtPassword = txtPassword;
    }

    public String getTxtEstado() {
        return txtEstado;
    }

    public void setTxtEstado(String txtEstado) {
        this.txtEstado = txtEstado;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
}
